﻿using AutoMapper;
using ExcellentProjectPlus.Aplicacion.Examenes.Calendarizaciones;
using ExcellentProjectPlus.Aplicacion.Examenes.Examenes;
using ExcellentProjectPlus.Dominio.Examenes.Entidades;
using Servicios.Examenes.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace Servicios.Examenes.Controllers
{
    public class ExamenesEstudianteController : ApiController
    {
        #region Propiedades
        IServicioDeGestionDeCalendarizaciones _servicioDeGestionDeCalendarizaciones;
        IServicioDeGestionDeExamenes _servicioDeGestionDeExamenes;
        #endregion

        #region Constructores
        public ExamenesEstudianteController(IServicioDeGestionDeCalendarizaciones servicioDeGestionDeCalendarizaciones,
            IServicioDeGestionDeExamenes servicioDeGestionDeExamenes)
        {
            _servicioDeGestionDeCalendarizaciones = servicioDeGestionDeCalendarizaciones;
            _servicioDeGestionDeExamenes = servicioDeGestionDeExamenes;
            Mapper.CreateMap<Calendarizacion, CalendarizacionModel>();
        }
        #endregion

        [HttpGet]
        [Route("ExamenesPendientes")]
        public IHttpActionResult Get(int idEstudiante)
        {
            return Ok(_servicioDeGestionDeCalendarizaciones.ObtenerExamenesPendientesPorEstudiante(idEstudiante));
        }

        [HttpGet]
        [Route("ExamenesPendientesDocente")]
        public IHttpActionResult ObtenerCalendarizaciones(int idDocente)
        {
            return Ok(Mapper.Map<IEnumerable<Calendarizacion>, IEnumerable<CalendarizacionModel>>(
                _servicioDeGestionDeCalendarizaciones.ObtenerExamenesPendientesPorDocente(idDocente)));
        }

        [HttpGet]
        [Route("ExamenesRendidos")]
        public IHttpActionResult ObtenerExamanesRendidos(int idEstudiante)
        {
            return Ok(_servicioDeGestionDeExamenes.ObtenerExamenesRendidosPorEstudiante(idEstudiante));
        }

    }
}